package chapter07.s03charsteam.p01filereader;

import java.io.FileReader;

/**
 * 字符流
 * InputStream类和OutputStream类在读写文件时操作的都是字节，
 * 如果希望在程序中操作字符，使用这两个类就不太方便，为此JDK提供了字符流
 * 字符流也有两个抽象的顶级父类，分别是Reader和Writer
 * Reader是字符输入流，用于从某个源设备读取字符。
 * Writer是字符输出流，用于向某个目标设备写入字符
 *
 * FileReader
 * 从关联的文件中读取一个或一组字符
 *
 * 字符输入流的read()方法返回的是int类型的值，如果想获得字符就需要进行强制类型转换
 */
public class Example15 {
    public static void main(String[] args) throws Exception {
        // 创建一个FileReader对象用来读取文件中的字符
        FileReader reader = new FileReader("src/chapter07/test.txt");
        int ch;                    // 定义一个变量用于记录读取的字符
        while ((ch = reader.read()) != -1) {    // 循环判断是否读取到文件的末尾
            System.out.println((char) ch);        // 不是字符流末尾就转为字符打印
        }
        reader.close(); // 关闭文件读取流，释放资源
    }
}
